package controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import pojo.User;
import service.UserService;
import utils.Page;

import java.util.List;

@Controller
    @RequestMapping("/user")
public class UserController {

       @Autowired
        private UserService userService;

        @RequestMapping("/login")
        public String login(User user) {
            boolean flag = userService.login(user);
            if (flag) {
                return "index";
            } else {
                return "login";
            }
        }
        @RequestMapping("/list/{currentPage}")
        public String  list(User user, @PathVariable("currentPage") Integer currentPage, Model model){
            //查询数据
            Page page = new Page();
            int totalCount=userService.count(user);
            page.setCurrentPage(currentPage);
            page.setTotalCount(totalCount);
            page.setTotalPage();

            int offset=(currentPage-1)*page.getPageSize();;
            List<User> users=userService.findAll(user,offset,page.getPageSize());

            model.addAttribute("page",page);
            model.addAttribute("users",users);
            model.addAttribute("user",user);
            return "user/list";

        }
        @RequestMapping("/toadd")
        public String toAdd(){
            return "user/add";
        }
        @RequestMapping("/addSave")
        public String addSave(User user){
            int result=userService.addUser(user);
           if(result>0){
               return "redirect:/user/list/1";
           }else{
               return "error";
           }
        }
        @RequestMapping("/delete/{id}")
        public String delete(@PathVariable("id") Integer id){
            int result=userService.deleteUserById(id);
            if(result>0){
                return "redirect:/user/list/1";
            }else{
                return "error";
            }
            }
            @RequestMapping("/toupdate/{id}")
    public String toUpdate(@PathVariable("id") Integer id,Model model){
            model.addAttribute("user",userService.findUserById(id));
            return "user/update";

        }

        @RequestMapping("/updateSave")
    public String updateSave(User user){
            int result=userService.updateUser(user);
            if(result>0){
                return "redirect:/user/list/1";
            }else{
                return "error";
            }
        }


}
